<template>
  <!-- <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName"></use>
    </svg> -->
  <div v-if="isExternals" :style="styleExternalIcon" class="svg-external-icon svg-icon" />
  <svg v-else :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName" />
  </svg>
</template>

<script lang="ts">
import { computed } from 'vue'
import { isExternal } from '@/utils/validate'
export default {
  name: 'SvgIcon',
  props: {
    iconClass: { type: String, required: true },
    className: { type: String }
  },
  setup(props) {
    const isExternals = computed(() => {
      return isExternal(props.iconClass)
    })
    const iconName = computed(() => {
      console.log(props.iconClass)
      return props.iconClass ? `#icon-${props.iconClass}` : '#icon'
    })
    const svgClass = computed(() => {
      return props.className ? 'svg-icon ' + props.className : 'svg-icon'
    })

    const styleExternalIcon = computed(() => {
      return {
        mask: `url(${props.iconClass}) no-repeat 50% 50%`,
        '-webkit-mask': `url(${props.iconClass}) no-repeat 50% 50%`
      }
    })
    return { iconName, svgClass, styleExternalIcon, isExternals }
  }

}
</script>

  <style scoped lang="scss">
    .svg-icon {
      width: 1em;
      height: 1em;
      vertical-align: -0.15em;
      fill: currentColor;
      overflow: hidden;
    }
  </style>

